home *** CD-ROM | disk | FTP | other *** search
- '** Turbo Audio List Editor
- '** (c) 1990 Dutch Art Editor development
- '** coded by Mitch
- '**
-
-
- GOTO start
-
- breke:
- GOTO einde
- RETURN
-
- header:
- COLOR 3,0 : CLS : PRINT "TALE v1.7" : PRINT
- COLOR 2,0 : RETURN
-
- getanumber:
- x=POS(0) : y=CSRLIN
- COLOR 3,0 : a=0 : t=0
- getnumber:
- t=t+1 : IF t < 40 THEN getno
- t=0 : IF a=0 THEN LOCATE y,x : PRINT "_" : a=1 : GOTO getno
- a=0 : LOCATE y,x : PRINT " "
- getno:
- a$=INKEY$ : IF a$ <"0" OR a$>"9" THEN getnumber
- COLOR 2,0 : RETURN
-
- wrcom:
- l=link(i)
- LOCATE 3,1 : PRINT "HEADER: ";header$(i) : PRINT "INFO : ";index$(l,1)
- PRINT "INDEX : 1..15"
- FOR y = 6 TO 20 : LOCATE y+1,1 : a$=index$(l,y-4)
- PRINT SPACE$(76) : LOCATE y+1,1
- PRINT a$ : NEXT
- IF index$(l,17)="" THEN RETURN
- GOSUB retern
- LOCATE 5,1 : PRINT "INDEX : 16..30"
- FOR y = 6 TO 20 : LOCATE y+1,1 :a$=index$(l,y+11)
- PRINT SPACE$(76) : LOCATE y+1,1
- PRINT a$ : NEXT
- RETURN
- wrhd:
- COLOR 2,0 : PRINT " ";header$(i) : RETURN
- wrhdp:
- l=link(i):y=y+1
- COLOR 2,0 : PRINT header$(i) : PRINT index$(l,1) : RETURN
-
- retern:
- xt=0
- LOCATE 24,1 : COLOR 2,0 : PRINT "PRESS RETURN";
- retern3:
- a$=INKEY$ : IF a$=CHR$(27) THEN xt=1 : GOTO retern2
- IF a$<>CHR$(13) THEN retern3
- retern2:
- LOCATE 24,1 : COLOR 0,0 : PRINT "PRESS RETURN";
- COLOR 2,0 : RETURN
-
- wrsn:
- FOR i = 1 TO LEN(a$) : COLOR 2,0 : PRINT MID$(a$,i,1);
- COLOR 3,0 : PRINT "_"; : LOCATE CSRLIN,POS(0)-1
- FOR j = 1 TO 30 : NEXT : NEXT : PRINT " "; : COLOR 2,0 : RETURN
-
- gettext:
- x=POS(0) : y=CSRLIN:b$=""
- gettextwacht:
- t=t+1 : IF t < 20 THEN gettextwacht2
- COLOR 3,0
- t=0 : IF a=0 THEN LOCATE y,x : PRINT "_" : a=1 : GOTO gettextwacht2
- a=0 : LOCATE y,x : PRINT " "
- gettextwacht2:
- COLOR 2,0
- a$=INKEY$ : IF a$=CHR$(13) THEN gettextklaar
- IF a$=CHR$(8) AND b$>"" THEN gtxtbs
- IF LEN(b$) > 78 THEN gettextwacht
- IF a$="" THEN gettextwacht
- b=ASC(a$)
- IF b > 31 AND b < 123 THEN b$=b$+a$ : LOCATE y,x : PRINT a$:x=x+1
- GOTO gettextwacht
- gtxtbs:
- b$=LEFT$(b$,LEN(b$)-1) : LOCATE y,x : PRINT " " : x=x-1
- t=30 : GOTO gettextwacht
- gettextklaar:
- LOCATE y,x : PRINT " " : RETURN
-
-
- start:
- WINDOW 1,,(0,0)-(10,10),0,-1
- WINDOW 2,,(0,0)-(630,220),16,-1
- MENU 1,0,0,""
- ON BREAK GOSUB breke : BREAK ON
- PALETTE 0,0,0,.3 : PALETTE 1,0,0,.3: PALETTE 2,.1,.1,.9
- PALETTE 3,.3,.3,1
- startitnotyet:
- GOSUB header : GOSUB getcode : IF xt=1 THEN startitnotyet
- GOTO startit
-
- getcode:
- xt=0 : PRINT "Enter accesscode: ";
- b$="" : FOR i = 1 TO 4
- GOSUB getanumber : LOCATE y,x : PRINT a$;
- b$=b$+a$ : NEXT : IF b$="8087" THEN RETURN
- xt=1 : RETURN
-
- startit:
- PALETTE 3,1,1,1 : CLS : COLOR 2,0 : LOCATE 8,33 : PRINT " T A L E "
- LOCATE 10,28 : PRINT "turbo audio list editor"
-
-
- LOCATE 20,30 : COLOR 2,0 : PRINT ". . . . . . . . . ."
- LOCATE 20,30 : COLOR 3,0
- OPEN "TALED" FOR INPUT AS #2
- INPUT #2,nu : t=INT(nu/10) : b=t
- k=nu+45 : IF k < 150 THEN k=150
- DIM index$(k,31),header$(k),link(k),buffer$(30)
- FOR i = 1 TO nu
- IF i = t THEN PRINT ". "; : t=t+b
- LINE INPUT #2,header$(i)
- INPUT #2,link(i)
- FOR j = 1 TO 31
- LINE INPUT #2,index$(i,j)
- IF index$(i,j)="@" THEN index$(i,j)="" : GOTO ldd
- NEXT j
- ldd:
- NEXT i
- CLOSE #2
- CLS : PALETTE 3,.3,.3,1
- FOR i = 1 TO 30 : buffer$(i)="THESE MIGHT BE FILLED YOU KNOW!" : NEXT
-
- GOSUB header
- PRINT
- PRINT
- PRINT "coded by : Mitch"
- PRINT "(c) 1990 Dutch Art Editor Development"
- PRINT
- PRINT "Aditional testing : DIGITIX audio data handling crew"
- PRINT "Structurizing and editor environment : Mitch"
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT
- PRINT "All rights reserved"
- GOSUB retern
-
- keuze:
- xt=0
- GOSUB header
- PRINT:kk=0 : l=0 : b=0
- FOR i = 1 TO nu
- a$=LEFT$(index$(i,1),4)
- IF a$="TAPE" THEN kk=kk+1
- IF a$="CD " THEN l=l+1
- IF a$="RECD" THEN b=b+1
- NEXT
- PRINT "CD's :";l
- PRINT "Tapes :";kk
- PRINT "Records :";b; : LOCATE CSRLIN,30 : PRINT "Total :";l+kk+b:PRINT
- IF l+kk+b <> nu THEN PRINT" Totals error...." : GOTO 8088
- PRINT
- PRINT
- PRINT "MENU: 1. Input"
- PRINT " 2. Delete"
- PRINT " 3. Display"
- PRINT " 4. Print"
- PRINT " 5. Edit"
- PRINT " 6. Save datafile"
- PRINT " 7. Rename header + new specifications"
- PRINT " 8. Delete all"
- PRINT " 9. Special menu"
- PRINT : PRINT "Choice : ";
- kwacht:
- GOSUB getanumber : LOCATE y,x
- b=VAL(a$) : IF b = 0 THEN kwacht
- ON b GOSUB 1000,2000,3000,4000,6000,5000,sm2,8000,9999
- GOTO keuze
-
- 5000 GOSUB header : a$="Save requested." : GOSUB wrsn : PRINT
- a$="Confirm (c/..) : " : GOSUB wrsn:COLOR 3,0 : PRINT "_" : COLOR 2,0
- 5100 a$=INKEY$ : IF a$="c" THEN 5110
- IF a$="" THEN 5100
- RETURN
- 5110 GOSUB svdata : RETURN
-
- 3000 GOSUB header :x=3 : y=0
- FOR i = 1 TO nu
- y=y+1
- GOSUB wrhd
- IF y = 18 THEN xt=0 : GOSUB 3010 : IF xt=1 THEN RETURN
- 3005 NEXT :
- IF nu > 17 THEN GOSUB bottom : GOTO 3005
- 3006 xt=0 : GOSUB 3010 : IF xt=1 THEN RETURN
- GOTO 3006
-
- 3010
- LOCATE x-1,1 : PRINT " " : LOCATE x+1,1: PRINT " "
- LOCATE 20,1 : PRINT " " : LOCATE 3,1 : PRINT " "
- LOCATE x,1 : COLOR 0,3 : PRINT " " : COLOR 2,0
- LOCATE 22,1
- PRINT "< ";i-18;" [";nu;"] ";nu-i;" > cursor : ";i-20+x
- PRINT "Left/Right-Backward/Forward F1/F10-top/bottom Up/Down-move cursor"
- PRINT "RETURN -extract F5/F6 -scroll u/d Esc -exit"
- 3020 a$=INKEY$ : IF a$="" THEN 3020
- IF a$=CHR$(30) THEN diedaar
- IF a$=CHR$(31) THEN 3050
- IF a$=CHR$(28) AND x > 3 THEN x=x-1 : GOTO 3010
- IF a$=CHR$(28) THEN x=20 : GOTO 3010
- IF a$=CHR$(29) AND x < 20 THEN x=x+1 : GOTO 3010
- IF a$=CHR$(29) THEN x=3 : GOTO 3010
- IF a$=CHR$(27) THEN xt=1 : RETURN
- IF a$=CHR$(129) THEN i=0 : GOTO diedaar
- IF a$=CHR$(138) THEN bottom
- IF a$=CHR$(133) THEN mineenregel
- IF a$=CHR$(134) THEN eenregel
- IF a$=CHR$(13) THEN 3030
- GOTO 3020
- mineenregel:
- i=i-19 : IF i < 0 THEN i=0
- GOTO diedaar
- eenregel:
- i=i-17 : IF i < 0 THEN i=0
- GOTO diedaar
- bottom:
- i=nu-18 : IF i < 0 THEN i=0
- diedaar:
- GOSUB header : y=0 : RETURN
- 3030 i=i-18 : IF i < 0 THEN i=0
- j=i : i=i+x-2 : GOSUB header
- GOSUB wrcom : GOSUB retern : i=j : GOTO diedaar
- 3050 i=i-18 : i=i-18 : IF i < 0 THEN i=0
- GOTO diedaar
-
- 1000 GOSUB header : a$="INPUT" : GOSUB wrsn:PRINT : GOSUB getitem
- IF xt=1 THEN RETURN
- IF xt=2 THEN 1000
- GOTO naitemget
- getitem:
- xt=0 : PRINT :PRINT "(C)ompact disc, (T)ape or (R)ecord [C/T/R] ? ";
- 1010 a$=INKEY$ : IF a$="" THEN 1010
- IF a$=CHR$(27) THEN xt=1 : RETURN
- a$=UCASE$(a$)
- IF a$="C" THEN b$="CD " : GOTO 1020
- IF a$="T" THEN b$="TAPE" : GOTO 1020
- IF a$="R" THEN b$="RECD" : GOTO 1020
- GOTO 1010
- 1020 PRINT b$ : b$=b$+" - Dated: "
- PRINT "Enter date of purchase/copy (dd.mm.yy):";
- GOSUB getanumber : LOCATE y,x : PRINT a$; : c$=a$
- GOSUB getanumber : LOCATE y,x : PRINT a$; : c$=c$+a$ : b=VAL(c$)
- IF b < 1 OR b > 31 THEN xt=2 : RETURN
- PRINT "."; : b$=b$+c$+"."
- GOSUB getanumber : LOCATE y,x : PRINT a$; : c$=a$
- GOSUB getanumber : LOCATE y,x : PRINT a$; : c$=c$+a$ : b=VAL(c$)
- IF b < 1 OR b > 12 THEN xt=2 : RETURN
- PRINT "."; : b$=b$+c$+"."
- GOSUB getanumber : LOCATE y,x : PRINT a$; : c$=a$
- GOSUB getanumber : LOCATE y,x : PRINT a$; : c$=c$+a$ : b=VAL(c$)
- b$=b$+c$+" - "
- PRINT : PRINT "Enter specifications :";:c$=b$
- GOSUB gettext : c$=c$+b$
- hedinput:
- d$="*"
- PRINT : PRINT "Enter header below:"
- PRINT ">"; :GOSUB gettext
- d$=d$+b$ :FOR i = 1 TO nu : IF header$(i)=d$ THEN alreadyex
- NEXT : GOTO continue
- alreadyex:
- PRINT :PRINT "Sorry already exists." : GOTO hedinput
- continue:
- nu=nu+1 : header$(nu)=d$ : index$(nu,1)=c$:link(nu)=nu
- FOR i = 2 TO 31 : index$(nu,i)="":NEXT
- RETURN
-
- naitemget:
- PRINT :PRINT : i=nu : GOSUB wrhdp
- PRINT : PRINT "Okay ? (y/n) : ";
- 1405 a$=INKEY$ : IF a$="y" OR a$="Y" THEN 1410
- IF a$=CHR$(27) THEN RETURN
- IF a$ <> "n" AND a$ <> "N" THEN 1405
- nu=nu-1 : GOTO 1000
- 1410 PRINT "yes" : GOSUB sorteren :GOTO nasorteren
- sorteren:
- PRINT :a$="Sorting... " : GOSUB wrsn :PRINT
- FOR i = 1 TO nu
- IF header$(nu) > header$(i) THEN sort
- SWAP header$(i),header$(nu)
- SWAP link(i),link(nu)
- sort:
- NEXT i : RETURN
- nasorteren:
- FOR i = 1 TO nu : IF header$(i)=d$ THEN editindex
- NEXT : PRINT "1:Error (before editindex lab)" : GOTO 8088
-
- editindex:
- GOSUB header : LOCATE 1,20 : PRINT "EDIT :";header$(i)
- l=link(i) : a=l : x=2 : t=1 : xy=1
- FOR i = 1 TO 30 : a$=index$(l,i+1) : IF a$="" THEN a$=" "
- a$=a$+" " : buffer$(i)=a$ :NEXT
- LOCATE 3,1 : FOR i = 1 TO 76 : PRINT "-"; : NEXT
- LOCATE 20,1 : FOR i = 1 TO 76 : PRINT "-";: NEXT
- PRINT
- PRINT "` : insert a subheader Esc : to exit TAB : 6 right"
- PRINT "~ : remove a subheader F1 : top F10 : bottom"
- ed2:
- COLOR 2,0
- FOR y=1 TO 16 :LOCATE y+3,1 : PRINT SPACE$(75)
- LOCATE y+3,1 : PRINT buffer$(t+y-1) : NEXT
- ed3:
- IF x > LEN(buffer$(xy+t-1)) THEN x=LEN(buffer$(xy+t-1))
- LOCATE xy+3,1 : COLOR 2,0 : PRINT LEFT$(buffer$(xy+t-1)+SPACE$(73),75)
- LOCATE xy+3,x : COLOR 0,3 : PRINT MID$(buffer$(xy+t-1),x,1)
- COLOR 2,0
- ed:
- a$=INKEY$ : IF a$="" THEN ed
- IF a$=CHR$(27) THEN eindeedit
- IF a$=CHR$(28) AND xy > 1 THEN keyup
- IF a$=CHR$(28) AND t > 1 THEN xy=14 : t=1 : GOTO ed2
- IF a$=CHR$(29) AND xy < 16 THEN keydown
- IF a$=CHR$(29) AND t < 15 THEN t=15 : xy=3 : GOTO ed2
- IF a$=CHR$(31) AND x > 2 THEN x=x-1 : GOTO ed3
- IF a$=CHR$(30) THEN keyright
- IF a$="`" THEN buffer$(xy+t-1)="-"+RIGHT$(buffer$(xy+t-1),LEN(buffer$(xy+t-1))-1):GOTO ed3
- IF a$="~" THEN buffer$(t+xy-1)=" "+RIGHT$(buffer$(xy+t-1),LEN(buffer$(xy+t-1))-1):GOTO ed3
- IF a$=CHR$(127) THEN delly
- IF a$=CHR$(8) AND x > 2 THEN buffer$(xy+t-1)=LEFT$(buffer$(xy+t-1),x-2)+RIGHT$(buffer$(t+xy-1),LEN(buffer$(xy+t-1))-x+1):x=x-1 : GOTO ed3
- IF a$=CHR$(8) AND (xy > 1 OR t > 1) THEN delback
- IF a$=CHR$(9) THEN tabbie
- IF a$=CHR$(129) THEN t=1 :x=2:xy=1: GOTO ed2
- IF a$=CHR$(138) THEN t=15:x=2:xy=16: GOTO ed2
- IF a$=CHR$(13) THEN retournados
- IF ASC(a$)>31 AND ASC(a$)<127 THEN justanalphanum
- GOTO ed
- delly:
- IF LEN(buffer$(xy+t-1)) < 2 THEN ed2
- buffer$(xy+t-1)=LEFT$(buffer$(xy+t-1),x-1)+MID$(buffer$(xy+t-1),x+1,LEN(buffer$(xy+t-1))-x)
- IF RIGHT$(buffer$(xy+t-1),1) <> " " THEN buffer$(xy+t-1)=buffer$(xy+t-1)+" "
- IF buffer$(xy+t-1)=" " THEN buffer$(xy+t-1)=" "
- GOTO ed3
- keyup:
- LOCATE xy+3,1 : COLOR 2,0 : PRINT buffer$(xy+t-1):xy=xy-1:GOTO ed3
- keydown:
- LOCATE xy+3,1 : COLOR 2,0 : PRINT buffer$(xy+t-1):xy=xy+1:GOTO ed3
- keyright:
- x=x+1 : IF x > 75 THEN x=75
- GOTO ed3
- justanalphanum:
- x$=RIGHT$(buffer$(xy+t-1),LEN(buffer$(xy+t-1))+1-x)
- buffer$(xy+t-1)=LEFT$(buffer$(t+xy-1),x-1)+a$
- buffer$(xy+t-1)=buffer$(t+xy-1)+x$
- x=x+1
- GOTO ed3
- tabbie:
- x=x+6 : IF x > 75 THEN x=75
- GOTO ed3
- retournados:
- IF t > 1 AND xy > 15 THEN ed3
- FOR i = 30 TO t+xy+1 STEP -1
- buffer$(i)=buffer$(i-1)
- NEXT
- buffer$(xy+t)=" "
- xy=xy+1:IF xy > 16 THEN xy=3 : t=15
- GOTO ed2
- delback:
- IF t=1 AND xy=1 THEN ed2
- FOR i = t+xy-2 TO 29
- buffer$(i)=buffer$(i+1)
- NEXT
- buffer$(30)=" "
- xy=xy-1 : IF xy < 1 THEN t=1 : xy=14
- x=2 : GOTO ed2
- eindeedit:
- GOSUB header
- a$="Sorting your index and removing blancs..":GOSUB wrsn
- x=2 : FOR i = 1 TO 30 : k$=buffer$(i) : k$=LEFT$(k$,75)
- jee3:
- IF RIGHT$(k$,1)=" " THEN k$=LEFT$(k$,LEN(k$)-1) : GOTO jee3
- IF k$ > "" THEN index$(a,x)=k$ : x=x+1
- NEXT i : FOR i = x+1 TO 31 : index$(a,i)="" : NEXT
- FOR i = 2 TO 31 : IF LEFT$(index$(a,i),1)="-" THEN GOSUB doit
- NEXT i
- FOR i = 1 TO nu : IF link(i)=a THEN found
- NEXT : PRINT "2:Error (Line in jee3 lab)":GOTO 8088
- found:
- GOSUB header: GOSUB wrcom
- GOSUB retern
- RETURN
- doit:
- FOR j = i+1 TO 31 : IF LEFT$(index$(a,j),1)="-" THEN doit2
- IF index$(a,j)="" THEN doit2
- NEXT j
- doit2:
- j=j-1
- FOR l = 1 TO (j-i)
- FOR b = (i+1) TO (j-1)
- IF index$(a,b) < index$(a,b+1) THEN doit3
- SWAP index$(a,b),index$(a,b+1)
- doit3:
- NEXT b :NEXT l
- RETURN
-
- einde:
- PALETTE 1,0,0,1
- WINDOW CLOSE 2
- END
-
- svdata:
- PALETTE 3,1,1,1 : COLOR 2,0
- t=INT(nu/20)+1 : b=t : CLS : PRINT : PRINT "Writing datafile..."
- LOCATE 10,1 : PRINT "> . . . . . . . . . . . . . . . . . . . . < transfer level"
- LOCATE 10,3 : COLOR 3,0
- OPEN "TALED" FOR OUTPUT AS #2
- PRINT #2,nu
- FOR i = 1 TO nu
- IF i=t THEN t=t+b : PRINT ". ";
- PRINT #2,header$(i)
- PRINT #2,link(i)
- FOR j = 1 TO 31 : IF index$(i,j)="" THEN PRINT #2,"@" : GOTO svd
- PRINT #2,index$(i,j)
- NEXT j
- svd:
- NEXT i
- CLOSE #2
- PALETTE 3,.3,.3,1
- RETURN
-
- 2000 GOSUB header : PRINT "Delete"
- GOSUB searchforheader : GOTO 2005
- searchforheader:
- k=1 : PRINT : PRINT "Enter header :";:GOSUB gettext
- d$="":FOR i = 1 TO LEN(b$) : d$=d$+UCASE$(MID$(b$,i,1)) :NEXT
- searchinjump:
- xt=0 : FOR i = k TO nu : c$=header$(i) : b$="":l=LEN(d$)+1
- IF l > LEN(c$) THEN l=LEN(c$)
- FOR j = 2 TO l
- b$=b$+UCASE$(MID$(c$,j,1)) : NEXT
- IF b$=d$ THEN dalreadyex
- NEXT :PRINT :PRINT "Doesn't exist." : GOSUB retern : xt=1 : RETURN
- dalreadyex:
- PRINT
- PRINT "Type : ";LEFT$(index$(link(i),1),4)
- PRINT "Header : ";header$(i) : k=i+1 : RETURN
-
- 2005 IF xt=1 THEN RETURN
- PRINT :a$="Delete or continue search ? (d/c) : " : GOSUB wrsn
- COLOR 3,0 : PRINT "_" : COLOR 2,0 :i=kk
- 2010 a$=INKEY$ : IF a$="c" THEN GOSUB searchinjump : GOTO 2005
- IF a$=CHR$(27) THEN RETURN
- IF a$<>"d" THEN 2010
- a$="Deleting..." : GOSUB wrsn : PRINT :i=k-1 : l=link(i)
- FOR j = i TO nu-1 : header$(j)=header$(j+1)
- link(j)=link(j+1) : NEXT
- IF l=nu THEN nu=nu-1 : RETURN
- FOR j = 1 TO 31 : index$(l,j)=index$(nu,j) : NEXT : nu=nu-1
- FOR j = 1 TO nu : IF link(j)=nu+1 THEN link(j)=l : GOTO 2050
- NEXT
- 2050 RETURN
-
- 4000 GOSUB header : PRINT "PRINT"
- b$="" : FOR i = 1 TO 250 : b$=b$+"0" : NEXT
- t=1 : y=0
- 4010 GOSUB header : PRINT "PRINT"
- IF t < 1 THEN t=1
- b=t+10 : IF b > nu THEN b=nu : t=b-10 : IF t < 1 THEN t=1
- FOR i = t TO b : COLOR 2,0 : LOCATE i-t+6,2
- IF MID$(b$,i,1)="1" THEN COLOR 0,2
- PRINT header$(i) : NEXT : COLOR 2,0
- FOR b = i-t+6 TO 18 : LOCATE b,1 : PRINT SPACE$(75) : NEXT
- 4015 IF y < 0 THEN y=10
- IF y > 10 THEN y=0
- LOCATE 5+y,1 : PRINT " " : LOCATE 7+y,1 : PRINT " "
- LOCATE 6,1 : PRINT " " : LOCATE 16,1 : PRINT " "
- LOCATE 6+y,1 : COLOR 0,3 : PRINT " " : COLOR 2,0
- LOCATE 19,1
- PRINT "Use : F1-top / F10-bottom / Up / Down / Left / Right"
- PRINT "Functions: F - fill all C - clear all"
- PRINT " T - fill all tapes D - fill all discs"
- PRINT " R - fill all records P - print"
- PRINT " SPACE - (de)select Esc - quit"
- PRINT
- PRINT " Colors : "; : COLOR 0,2 : PRINT "selected"; : COLOR 2,0
- PRINT " not selected ( to print )"
- 4020 a$=INKEY$ : IF a$="" THEN 4020
- IF a$=CHR$(27) THEN RETURN
- IF a$=CHR$(129) THEN t=1 : GOTO 4010
- IF a$=CHR$(138) THEN t=nu-10 : GOTO 4010
- IF a$=CHR$(28) THEN y=y-1 : GOTO 4015
- IF a$=CHR$(29) THEN y=y+1 : GOTO 4015
- IF a$=CHR$(31) THEN t=t-11 : GOTO 4010
- IF a$=CHR$(30) THEN t=t+11 : GOTO 4010
- IF a$="f" THEN fillall
- IF a$="c" THEN clearall
- IF a$="t" THEN filltapes
- IF a$="d" THEN filldiscs
- IF a$="r" THEN fillrecords
- IF a$="p" THEN prit
- IF a$=" " THEN desel
- GOTO 4020
- fillall:
- GOSUB header
- b$="" : FOR i = 1 TO nu : b$=b$+"1" : NEXT
- FOR i = nu+1 TO 250 : b$=b$+"0" : NEXT : GOTO 4010
- clearall:
- GOSUB header
- b$="" : FOR i = 1 TO 250 : b$=b$+"0" : NEXT : GOTO 4010
- filltapes:
- GOSUB header
- FOR i = 1 TO nu
- l=link(i) : a$=LEFT$(index$(l,1),1) : IF a$="T" THEN GOSUB sel
- NEXT : GOTO 4010
- sel:
- b$=LEFT$(b$,i-1)+"1"+RIGHT$(b$,250-i) : RETURN
- dsel:
- b$=LEFT$(b$,i-1)+"0"+RIGHT$(b$,250-i) : RETURN
- filldiscs:
- GOSUB header
- FOR i = 1 TO nu
- l=link(i) : a$=LEFT$(index$(l,1),1) : IF a$="C" THEN GOSUB sel
- NEXT : GOTO 4010
- fillrecords:
- GOSUB header
- FOR i = 1 TO nu
- l=link(i) : a$=LEFT$(index$(l,1),1) : IF a$="R" THEN GOSUB sel
- NEXT : GOTO 4010
- desel:
- i=t+y
- IF MID$(b$,i,1)="1" THEN GOSUB dsel : GOTO 4010
- GOSUB sel : GOTO 4010
- prit:
- GOSUB header : PRINT "PRINT" : PRINT
- PRINT "You have now chosen : ";
- y=0 : FOR i = 1 TO 250 : IF MID$(b$,i,1)="1" THEN y=y+1
- NEXT : PRINT y;" headers to be printed." : IF y > 0 THEN 4099
- PRINT : PRINT "Press Return..."
- WHILE INKEY$="" : WEND : RETURN
- 4099 PRINT "Please choose a format : (1) Headers"
- PRINT " (2) Headers + Specifications"
- PRINT " (3) Headers + Specifications + Index"
- PRINT "Choose : ";
- 4110 a$=INKEY$ : l=VAL(a$) : IF l < 1 OR l > 3 THEN 4110
- PRINT l
- PRINT : PRINT "Opening printer device...insert a sheet <RETURN>"
- 4111 a$=INKEY$ : IF a$=CHR$(27) THEN RETURN
- IF a$ <> CHR$(13) THEN 4111
- OPEN "lpt1:" FOR OUTPUT AS #2
- PRINT #2," " : GOSUB header : PRINT "PRINT" : PRINT
- PRINT "Ok." : t=0 : b=48 : GOTO 4120
- test:
- b=b+1 : IF b < 49 THEN RETURN
- t=t+1
- PRINT "Please insert sheet : ";t;" <RETURN>"
- WHILE INKEY$<>CHR$(13) : WEND : b=0 : PRINT "printing..."
- RETURN
- 4120 FOR i = 1 TO nu : IF MID$(b$,i,1)="1" THEN GOSUB prithisone
- NEXT : CLOSE #2 : PRINT "Ready. <RETURN>"
- GOSUB retern : RETURN
- prithisone:
- GOSUB test
- PRINT #2,header$(i)
- IF l=1 THEN eindethisone
- GOSUB test
- PRINT #2,index$(link(i),1)
- IF l=2 THEN eindethisone
- FOR j = 2 TO 31
- a$=index$(link(i),j)
- IF a$="" THEN eveneindethisone
- GOSUB test
- PRINT #2,a$
- NEXT
- eveneindethisone:
- PRINT #2," "
- eindethisone:
- RETURN
-
- 6000 GOSUB header : PRINT "Edit"
- GOSUB searchforheader
- 6005 IF xt=1 THEN RETURN
- PRINT :a$="Edit or continue search ? (e/c) : " : GOSUB wrsn : COLOR 3,0
- PRINT "_" : COLOR 2,0 :i=k-1
- 6020 a$=INKEY$ : IF a$="c" THEN GOSUB searchinjump : GOTO 6005
- IF a$=CHR$(27) THEN RETURN
- IF a$<>"e" THEN 6020
- GOTO editindex
-
- 7000 GOSUB header
- OPEN "tale.help" FOR INPUT AS #2
- 7005 FOR i = 1 TO 20
- LINE INPUT #2,buffer$(i)
- IF buffer$(i)="*eindedatafile*" THEN CLOSE #2 : RETURN
- NEXT
- GOSUB header
- FOR i = 1 TO 20 : PRINT buffer$(i) : NEXT
- PRINT : PRINT
- PRINT "Press ESC or RETURN ...";
- 7010 a$=INKEY$ : IF a$="" THEN 7010
- IF a$=CHR$(27) THEN CLOSE #2 : RETURN
- IF a$=CHR$(13) THEN 7020
- GOTO 7010
- 7020 LOCATE CSRLIN,1 : PRINT "Reading.... " : GOTO 7005
-
- 8000 GOSUB header : PRINT "DELETE ALL"
- GOSUB getcode : IF xt=1 THEN RETURN
- PRINT : a$="Correct accesscode...all deleted." : GOSUB wrsn
- nu=0 : GOSUB retern : RETURN
-
- 8088 GOTO 8088
-
- 9000 REM ** check for errors in datafile
- GOSUB header : kk=0
- PRINT "Checking for errors in arraydata.."
- PRINT "Still to go :"; : y=CSRLIN : x=POS(0)
- FOR i = 1 TO nu
- LOCATE y,x : PRINT nu-i
- FOR j=1 TO 31
- a$=index$(link(i),j) : FOR k = 1 TO LEN(a$)
- b$=MID$(a$,k,1) : IF b$ > CHR$(31) AND b$ < CHR$(127) THEN 9010
- kk=kk+1 : LOCATE y+kk,1 : PRINT "Error in : ";header$(i) : GOTO 9020
- 9010 NEXT k
- NEXT j
- 9020 NEXT i : LOCATE y-1,1
- IF kk=0 THEN PRINT "No errors. " : GOTO 9030
- PRINT kk;" errors, fix with edit function. "
- 9030 GOSUB retern : RETURN
-
- 9999 REM ; Special Menu ;
- GOSUB header
- PRINT
- PRINT "Special menu --"
- PRINT
- PRINT " 1. Memory information"
- PRINT " 2. See help file"
- PRINT " 3. Check arraydata for errors"
- PRINT " 4. Search for artist/group"
- PRINT " 5. Search for special song"
- PRINT " 6. Cover constructor"
- PRINT " 7. Datafile operator"
- PRINT " 8. Credits"
- PRINT " 9. Main menu"
- PRINT
- PRINT "Choice : "; : GOSUB getanumber
- b=VAL(a$) : IF b < 1 OR b > 9 THEN 9999
- IF b=9 THEN RETURN
- ON b GOSUB sm1,7000,9000,sm4,sm5,sm6,sm7,credits
- GOTO 9999
-
- sm1:
- GOSUB header : PRINT "Memory information" :PRINT
- PRINT "Total number of items : ";nu
- PRINT " .. please wait .. "; : LOCATE CSRLIN,1
- l=0 : FOR i = 1 TO nu : l=l+LEN(header$(i))
- FOR j = 1 TO 31 : l=l+LEN(index$(i,j)) : NEXT : NEXT
- PRINT "Total arraydata size : ";l;"bytes"
- PRINT "Average size per item : ";INT(l/nu);"bytes"
- PRINT "Total remaining free mem: ";FRE(0);"bytes"
- PRINT "Memory for about : ";INT(FRE(0)/(l/nu));"new items"
- GOSUB retern : RETURN
-
- sm2:
- GOSUB header : PRINT "Change header and specs" : PRINT
- GOSUB searchforheader
- m05:
- IF xt=1 THEN RETURN
- PRINT :a$="Rename or continue search ? (r/c) : " : GOSUB wrsn : COLOR 3,0
- PRINT "_" : COLOR 2,0 :i=k-1
- m20:
- a$=INKEY$ : IF a$="c" THEN GOSUB searchinjump : GOTO m05
- IF a$=CHR$(27) THEN RETURN
- IF a$<>"r" THEN m20
- nu=nu+1 : header$(nu)=header$(i) : link(nu)=link(i)
- FOR j = i TO nu-1 : header$(j)=header$(j+1) : link(j)=link(j+1)
- NEXT : nu=nu-1 :
- m30:
- GOSUB header : PRINT "Change header and specs"
- PRINT "Changing : ";header$(nu)
- GOSUB getitem
- IF xt=1 OR xt=2 THEN m30
- nu=nu-1 : header$(nu)=header$(nu+1)
- index$(link(nu),1)=index$(nu+1,1) : GOSUB sorteren : PRINT
- PRINT "Header and specifications changed and sorted."
- GOSUB retern : RETURN
-
- sm4:
- GOSUB header : PRINT "Search for group/artist" : PRINT
- PRINT : PRINT "Enter (part of) searchkey :"; : GOSUB gettext
- PRINT : PRINT "Search terminated."
- PRINT "Not found." : GOSUB retern
- RETURN
-
- sm5:
- GOSUB header : PRINT "Search for a song" : PRINT
- PRINT : PRINT "Enter (part of) songname :";:GOSUB gettext
- d$="":FOR i = 1 TO LEN(b$) : d$=d$+UCASE$(MID$(b$,i,1)) :NEXT
- d$=" "+d$ : k=1 : b=2
- sinjump:
- GOSUB header : PRINT "Search for a song" : PRINT
- PRINT "Searching for :";d$
- PRINT "Remaining items :"; : y=CSRLIN : x=POS(0)
- FOR i = k TO nu : LOCATE y,x : PRINT nu-i
- FOR kk = b TO 31
- c$=index$(link(i),kk) : b$="":l=LEN(d$)
- IF l > LEN(c$) THEN l=LEN(c$)
- FOR j = 1 TO l
- b$=b$+UCASE$(MID$(c$,j,1)) : NEXT
- IF b$=d$ THEN gotasong
- NEXT : b=2 : NEXT
- PRINT :PRINT "No (more) matches." : GOSUB retern :RETURN
- gotasong:
- k=i : b=kk+1
- FOR i = kk TO 2 STEP -1
- b$=index$(link(k),i)
- IF LEFT$(b$,1)="-" THEN okayyoo
- NEXT
- okayyoo:
- b$=RIGHT$(b$,LEN(b$)-1)
- GOSUB header : PRINT "Search for a song" : PRINT
- PRINT "Search pattern :";d$
- PRINT "Found :";index$(link(k),kk)
- PRINT "Corresponding subheader: ";b$
- PRINT
- PRINT "On:"
- PRINT header$(k)
- PRINT index$(link(k),1)
- PRINT
- PRINT
- PRINT :a$="Print, escape or continue search ? (p/esc/c) : " : GOSUB wrsn
- COLOR 3,0 : PRINT "_" : COLOR 2,0
- sm5a:
- a$=INKEY$ : IF a$="c" THEN sinjump
- IF a$=CHR$(27) THEN RETURN
- IF a$<>"p" THEN sm5a
- PRINT : PRINT "Printing..."
- OPEN "lpt1:" FOR OUTPUT AS #1
- a$=LEFT$(index$(link(k),kk)+SPACE$(50),50)+"("+LEFT$(header$(k),25)+")"
- PRINT #1,a$
- CLOSE #1
- RETURN
-
- sm6:
- a$="" : FOR j = 1 TO 59 : a$=a$+"·" : NEXT
- FOR i = 3 TO 13 : buffer$(i)=a$ : NEXT
- buffer$(2)=" " : buffer$(14)=" "
- a$=LEFT$(a$,39)
- buffer$(15)=a$ : buffer$(16)=a$ : buffer$(1)=a$
- continuecoveredit:
- GOSUB header : PRINT "cover constructor" : PRINT
- 9869 x=1 : y=1 : LOCATE 22,1
- PRINT "TAB-3 forward F1-Copy from above Esc-Ready F10-Save"
- PRINT "` -3 back F2-Copy from below F6 -Load"
- LOCATE 5,1 : COLOR 2,0
- FOR i = 1 TO 16 : PRINT buffer$(i) : NEXT
- 9870 GOSUB 9879
- COLOR 2,3 : LOCATE 4+y,x : PRINT MID$(buffer$(y),x,1) : COLOR 2,0
-
- 9871 a$=INKEY$ : IF a$="" THEN 9871
- IF a$=CHR$(27) THEN weitergehen
- IF a$=CHR$(28) AND y > 1 THEN 9872
- IF a$=CHR$(29) AND y < 16 THEN 9873
- IF a$=CHR$(31) AND x > 1 THEN x=x-1 : GOTO 9870
- IF a$=CHR$(30) THEN 9874
- IF a$=CHR$(127) THEN 9876
- IF a$=CHR$(138) THEN savecover
- IF a$=CHR$(134) THEN loadcover
- IF a$=CHR$(129) AND y > 3 AND y < 14 THEN copyboven
- IF a$=CHR$(130) AND y > 2 AND y < 13 THEN copybeneden
- IF a$=CHR$(8) AND x > 1 THEN buffer$(y)=LEFT$(buffer$(y),x-2)+RIGHT$(buffer$(y),LEN(buffer$(y))-x+1)+"·":x=x-1 : GOTO 9870
- IF a$=CHR$(9) THEN 9877
- IF a$="`" THEN 9891
- IF a$=CHR$(13) AND y < 16 THEN x=1: GOTO 9873
- IF ASC(a$)>31 AND ASC(a$)<127 THEN 9878
- GOTO 9871
-
- copyboven:
- a$=MID$(buffer$(y-1),x,1) : GOTO 9878
- copybeneden:
- a$=MID$(buffer$(y+1),x,1) : GOTO 9878
- 9876 buffer$(y)=LEFT$(buffer$(y),x-1)+MID$(buffer$(y),x+1,LEN(buffer$(y))-x)+"·"
- GOTO 9870
- 9878 IF a$=" " THEN a$="·"
- x$=RIGHT$(buffer$(y),LEN(buffer$(y))+1-x)
- IF x$="" THEN buffer$(y)=LEFT$(buffer$(y),LEN(buffer$(y))-1)+a$ : GOTO 9870
- buffer$(y)=LEFT$(buffer$(y),x-1)+a$
- buffer$(y)=buffer$(y)+LEFT$(x$,LEN(x$)-1)
- 9890 x=x+1 : GOTO 9870
- 9877 x=x+3 : GOTO 9874
- 9891 x=x-3 : IF x < 1 THEN x=1
- GOTO 9870
- 9872 GOSUB 9879 : y=y-1 : IF y=2 OR y=14 THEN y=y-1
- IF y=1 OR y=15 OR y=16 THEN GOSUB 9875
- GOTO 9870
- 9873 GOSUB 9879 : y=y+1 : IF y=2 OR y=14 THEN y=y+1
- IF y=1 OR y=15 OR y=16 THEN GOSUB 9875
- GOTO 9870
- 9874 x=x+1 : IF x > 59 THEN x=59
- IF y=1 OR y=15 OR y=16 THEN GOSUB 9875
- GOTO 9870
- 9875 IF x > 39 THEN x=39
- RETURN
- 9879 LOCATE 4+y,1 : PRINT buffer$(y) : RETURN
- savecover:
- OPEN "tale.cover" FOR OUTPUT AS #2
- FOR i = 1 TO 16 : PRINT #2,buffer$(i) : NEXT : CLOSE #2
- GOTO 9870
- loadcover:
- OPEN "tale.cover" FOR INPUT AS #2
- FOR i = 1 TO 16 : LINE INPUT #2,buffer$(i) : NEXT : CLOSE #2
- GOTO 9869
-
- weitergehen:
- GOSUB header : PRINT "Cover constructor" : PRINT
- FOR i = 1 TO 16 : PRINT buffer$(i) : NEXT : PRINT
- PRINT "(P)rint, (C)ontinue, or (Esc)ape ?? "
- wg:
- a$=INKEY$ : IF a$=CHR$(27) THEN RETURN
- IF a$="c" THEN continuecoveredit
- IF a$ <> "p" THEN wg
- LOCATE 22,1
- PRINT "Removing dots.... ";
- FOR i = 1 TO 16 : a$=buffer$(i) : b$=""
- FOR j = 1 TO LEN(a$) : c$=MID$(a$,j,1) : IF c$="·" THEN c$=" "
- b$=b$+c$ : NEXT : buffer$(i)=b$
- NEXT
- LOCATE csrlin,1 : PRINT "Printing... "
- OPEN "lpt1:" FOR OUTPUT AS #2
- FOR i = 1 TO 3
- PRINT #2," "
- NEXT
- PRINT #2,CHR$(18);buffer$(1)
- PRINT #2,CHR$(15);
- FOR i = 2 TO 14
- PRINT #2,buffer$(i)
- NEXT
- PRINT #2,CHR$(18);
- PRINT #2,buffer$(15)
- PRINT #2,buffer$(16)
- CLOSE #2
- GOSUB retern : RETURN
-
- sm7:
- GOSUB datopheader
- OPEN "tale.datop" FOR INPUT AS #2
- FOR i = 1 TO 5 : LINE INPUT #2,buffer$(i) : NEXT : CLOSE #2
- PRINT "Current Datop: ";buffer$(1)
- PRINT "Address : ";buffer$(2)
- FOR i = 3 TO 5
- PRINT " ";buffer$(i) : NEXT
- PRINT
- PRINT "1. Enter New Datop"
- PRINT "2. Enter New Address"
- PRINT "3. Exit"
- PRINT
- PRINT "Make a choice please : "; : GOSUB getanumber
- b=VAL(a$) : IF b < 1 OR b > 3 THEN sm7
- IF b=3 THEN RETURN
- IF b=1 THEN newdatop
-
- addressdatop:
- GOSUB datopheader : PRINT "You have 4 lines for the address:"
- FOR i = 2 TO 5 : PRINT ">";
- GOSUB gettext : buffer$(i)=b$ : NEXT
- PRINT
- PRINT "Saving..."
- OPEN "tale.datop" FOR OUTPUT AS #2
- FOR i = 1 TO 5
- PRINT #2,buffer$(i)
- NEXT : CLOSE #2 : GOTO sm7
-
- newdatop:
- GOSUB datopheader : PRINT "Enter your name:" : PRINT ">";
- GOSUB gettext : buffer$(1)=b$ : PRINT : GOTO addressdatop
- datopheader:
- GOSUB header : PRINT "Datafile operator" : PRINT : RETURN
-
- credits:
- GOSUB header : PRINT : OPEN "tale.credits" FOR INPUT AS #2
- FOR kk = 1 TO 20 : LINE INPUT #2,a$ : GOSUB wrsn : PRINT
- NEXT : CLOSE #2
- GOSUB retern : RETURN
-